home *** CD-ROM | disk | FTP | other *** search
/ Ham Radio 2000 / Ham Radio 2000.iso / ham2000 / packet / p_tapr / tnchst / blp.do4 < prev    next >
Text File  |  1992-03-16  |  29KB  |  479 lines

  1. .HE BL╨ 3.σ Jaε 91
  2. .FO                            #
  3. .IG 
  4. .IG 
  5. .OJ ON
  6. .PN 1
  7.  
  8. .IG Documen⌠ dedicateΣ t∩ thσ publiπ domaiε b∙ N2WX
  9. .IG 
  10. .IG Retentioε oµ authorshi≡ noticσ woulΣ no⌠ bσ inappropriate
  11. .IG 
  12. .IG 
  13. .IG 
  14. .OJ ON
  15.  
  16. .IG Notσ tha⌠ i≤ i≤ ß WordSta≥ 6.0 file.  Iµ yo⌡ arσ printinτ this
  17. .IG 
  18. .IG oε somethinτ othe≥ thaε WordSta≥ 6.0 yo⌡ ma∙ havσ troublσ with
  19. .IG 
  20. .IG thσ statσ tables.  Correc⌠ printinτ oµ thσ statσ table≤ 
  21. .IG 
  22. .IG require≤ ß 17cpΘ landscapσ fon⌠ (ex, lineprinter17 oε ß laserjet3)
  23. .IG 
  24. .OJ ON
  25.  
  26.  
  27. WARNIN╟ - EXPERIMENTER╙ ONLY!
  28.  
  29.      Hos⌠ ámodσ oε TNC-2 anΣ derivativσ TNC≤ a⌠ thi≤ timσ remain≤ ì
  30. experimental.  Obviou≤ feature≤ receiveΣ ß quicδ "goinτ over" anΣ ì
  31. rathe≥ ácursor∙ ádebug, bu⌠ discover∙ oµ thσ remaininτ inevitablσ ì
  32. bug≤ áanΣ ácritica∞ programminτ oversight≤ await≤ thσ adventurou≤ ì
  33. reader/developer.  Pleasσ direc⌠ discoverie≤ anΣ criticisms:
  34.  
  35.           viß slo≈ boa⌠ : t∩ HowarΣ Goldstein
  36.                              5201-23rΣ Ave. N.
  37.                              St. Petersburg, F╠ 33710 USA
  38.           viß compuser÷ : t∩ 75006,702
  39.           viß haφ packet: t∩ N2W╪ @ W4DPH.FL
  40.  
  41.  
  42.      Introduction
  43.  
  44.       Thi≤ documen⌠ describe≤ thσ networδ laye≥ interfacσ useΣ iε TNC-2'≤ ì
  45. binar∙ interfacσ "host" modσ protocol, "BLP."
  46.  
  47.    Wherσ i⌠ fit≤ in
  48.  
  49.       BL╨ i≤ ß methoΣ fo≥ interfacinτ aε automateΣ applicatioε t∩ ß BLP-ì
  50. capablσ AX.25 termina∞ nodσ controller.  
  51.  
  52.         |                 |
  53.         |  Applicatioε    |
  54.         |(transpor⌠ intfc)|                             ^~~~~<> R╞ t∩ peer
  55.         +++++++++++++++++++                     ________|________
  56.         |                 |                    |                 |      
  57.         |                 |                    |                 |      
  58.         | Compute≥ drive≥ |                    |    TN├ drive≥   |      
  59.         | (networδ intfc) |                    | (networδ intfc) |      
  60.         |                 |                    |                 |      
  61.     ----------------------------           ---------------------------- 
  62.         Binar∙ Linδ Protoco∞     |*******|     Binar∙ Linδ Protoco∞     
  63.      (describeΣ b∙ thi≤ document)|       |  (describeΣ b∙ thi≤ document)
  64.     ___________________________▀           ____________________________
  65.    |                            |         |                            |
  66.    |                            |         |                            |
  67.    |           DL├              |*********|            DL├             |
  68.    |    (defineΣ elsewhere)     |         |    (defineΣ elsewhere)     |
  69.    ┌────────────────────────────┐         ┌────────────────────────────┐
  70.    │          QAF╘              │         │          QAF╘              │
  71.    │    (defineΣ elsewhere)     │.........│    (defineΣ elsewhere)     │
  72.    │                            │         │                            │
  73.    └────────────────────────────┘         └────────────────────────────┘
  74.  
  75.                               Key:
  76.                                    ......  Onσ physica∞ connection
  77.                                    ******  Onσ o≥ morσ logica∞ connections
  78.  
  79.  BL╨ encapsulation
  80.  
  81.       ┴ BL╨ interfacσ communicate≤ witΦ it≤ pee≥ interfacσ b∙ sendinτ BL╨ ì
  82. packet≤ t∩ anΣ receivinτ theφ froφ thσ underlyinτ DL├ machine.  
  83.  
  84. .CP 15
  85.  BL╨ packe⌠ structure
  86. ìè
  87. .OJ OFF
  88.          >| LCNbytσ | CTRLbytσ | [variablσ pe≥ CTRL▌ |<
  89. .OJ ON
  90.  
  91.       byte::  8 bi⌠ unsigneΣ integer
  92.       wΣ  :: 16 bi⌠ unsigneΣ intege≥ transmitteΣ a≤ tw∩ 'bytes', leas⌠ sigì
  93. nifican⌠ bytσ firs⌠ 
  94.  
  95. LCN   :  Logica∞ channe∞ t∩ whicΦ thσ BL╨ packe⌠ corresponds.  
  96.  
  97.       LC╬ 0-6F       :: Gen'lly, link≤ initiateΣ b∙ ß terminal, t∩ ß TN├ 
  98.       LC╬ 70-7f      :: Specia∞ permanentl∙ connecteΣ functions
  99.                ******
  100.                LC╬ 70          -  TN├ globa∞ commanΣ anΣ configuration
  101.                LC╬ 71          -  TN├ broadcas⌠ channel
  102.                 --- d∩ NO╘ issuσ cal∞ setu≡ packet≤ t∩ the
  103.                     broadcas⌠ channel.  TNC-2 ma∙ balδ iµ yo⌡ do.
  104.                LC╬ 72-7f       -  reserved
  105.                ******
  106.       LC╬ 80-EF      :: Gen'lly, link≤ initiateΣ b∙ ß TNC, t∩ ß terminal.
  107.       LC╬ F0-FF      :: reserved
  108.  
  109. CTRL  :  typσ oµ packe⌠ 
  110.  
  111. hex
  112. ---
  113. 02    C╙ - Cal∞ setup           (request)
  114. 12    CSEMAI╠ - Cal∞ setu≡ , outgτ emai∞  ** no⌠ TNC-2
  115. 04    CC├    - Cal∞ connected    (response)
  116.  
  117.  
  118. 08    CCL╥  - Cal∞ clear         (request)
  119. 09    CCLR─ - Cal∞ cleared       (response)
  120.  
  121. 10    CSTEN╤ - Cal∞ statu≤ enquiry
  122.                               (request)
  123. 11    CSTRE╨ - Cal∞ statu≤ reply  (response)
  124.  
  125. 20    UDAT┴ - UnsequenceΣ data    (request)
  126.  
  127. 8X    DDAT┴ - SequenceΣ data     (request)
  128.  
  129. 9X    DAC╦  - SequenceΣ datß acknowledgement
  130.                               (response)
  131. AX    DBUS┘ - SequenceΣ datß acknowledgemen⌠ anΣ bus∙ indication
  132.                               (response)
  133.  
  134. .CP 3
  135.      Defininτ BLP
  136.  
  137.       BL╨ i≤ ß balanceΣ protocol.  Sincσ therσ arσ n∩ master-slavσ relationì
  138. ships, an∙ onσ BL╨ devicσ caε communicatσ witΦ an∙ othe≥ electricall∙ ì
  139. connecteΣ BL╨ device.  (fo≥ ex., onσ computer-onσ TNC, o≥ tw∩ computì
  140. er≤ anΣ n∩ TNCs, o≥ tw∩ TNC≤ back-to-back).
  141.  
  142.       BL╨ i≤ describeΣ anΣ implementeΣ a≤ multiplσ independen⌠ event-driveε ì
  143. finite-statσ machines.  
  144.  
  145.    BL╨ Objects
  146.  
  147.       EacΦ BL╨ linδ use≤ thesσ variable≤ anΣ objects:
  148.  
  149. BSTATE:    Onσ ááoµ áán ástates. á(seσ ásectioε áoε áBL╨ ástates, ì
  150. below)
  151.  
  152. BQUEUE:    FIF╧ ááqueuσ áoµ ápacket≤ áa≤ áye⌠ áunacknowledgeΣ áb∙ ì
  153. thσ pee≥ BL╨ device.
  154.  
  155.  
  156.    BL╨ States
  157.  
  158.       Therσ arσ fivσ Supervisor∙ state≤ anΣ fou≥ Datß states.  Thσ Datß ì
  159. state≤ arσ valiΣ onl∙ wheε thσ Supervisor∙ statσ i≤ BSDATA.  Seσ thσ ìèappendi° fo≥ thσ statσ tables.
  160.  
  161.  Supervisor∙ State≤ - ├ packets
  162.  
  163. BSIDLE
  164.  
  165.       Thσ BL╨ linδ i≤ no≈ inactivσ anΣ await≤ eithe≥ (1) receip⌠ oµ ß call-ì
  166. setu≡ (CS) packet; (2) loca∞ commanΣ t∩ initiatσ aε outgoinτ cal∞ froφ ì
  167. thσ upper-leve∞ driver; (3) datagram.
  168.  
  169.       Wheε thσ statσ i≤ BSIDLE, thσ BL╨ machinσ i≤ completel∙ idlσ excep⌠ ì
  170. tha⌠ thσ machinσ respond≤ t∩ receiveΣ CCLR commanΣ packe⌠ event≤ witΦ ì
  171. ß CCLRD indication.
  172.  
  173.       Iµ thσ BL╨ machinσ receive≤ CS, i.e. iµ i⌠ i≤ called, i⌠ shal∞ responΣ ì
  174. witΦ ß call-accepteΣ (CA) packe⌠ anΣ star⌠ it≤ attemp⌠ t∩ se⌠ u≡ it≤ ì
  175. upper-leve∞ application.  Fo≥ example, iµ BL╨ i≤ implementeΣ oε ß TNC, ì
  176. receip⌠ oµ ß CS cause≤ thσ TNC'≤ AX.25 machinσ t∩ begiε ß connectioε ì
  177. attempt.
  178.  
  179. BSRCSETUP
  180.  
  181.       Thσ BL╨ machinσ enter≤ thi≤ statσ wheε thσ local, upper-leve∞ applicaì
  182. tioε command≤ onσ oµ it≤ idlσ BL╨ machine≤ t∩ setu≡ ß connectioε t∩ ß ì
  183. remotσ BL╨ device.  Wheε ß BTIMER-expireΣ even⌠ occurs, thσ machinσ iε ì
  184. thi≤ statσ send≤ ß CS packe⌠ t∩ thσ peer.
  185.  
  186.       Thσ BL╨ machinσ leave≤ thi≤ statσ wheε (1) ß cal∞ accepteΣ (CA) indiì
  187. catioε i≤ received; o≥ (2) ß cal∞ clea≥ (CCLR) commanΣ i≤ received; o≥ ì
  188. (3) thσ retr∙ limi⌠ i≤ exceeded; (4) ß collisioε occur≤ i.e. ß CS ì
  189. packe⌠ i≤ received; o≥ (5) thσ loca∞ applicatioε command≤ thσ BL╨ t∩ ì
  190. clea≥ thσ connection.
  191.  
  192. BSLCSETUP
  193.  
  194.       ┴ calleΣ BL╨ machinσ enter≤ thi≤ statσ afte≥ i⌠ begin≤ initiatinτ ß ì
  195. connectioε witΦ it≤ upper-leve∞ driver.  Iµ thσ upper-leve∞ drive≥ i≤ ì
  196. successfull∙ connecteΣ (ex: TN├ ablσ t∩ makσ it≤ AX.25 connection), ì
  197. thσ machinσ enter≤ thσ BSDAT┴ state.  Otherwise, iµ thσ connectioε ì
  198. fails, thσ machinσ enter≤ thσ BSCLEARW╘ state.
  199.  
  200. BSCLEARWT
  201.  
  202.       Thσ BL╨ machinσ i≤ iε thi≤ statσ wheε ß BL╨ linδ i≤ beinτ torε down.  ì
  203. Wheε ß BTIMER-expireΣ even⌠ occurs, thσ machinσ send≤ ß CCLR command.  ì
  204. CleareΣ indicatioε (CCLRD) packe⌠ receiveΣ anΣ retry-limi⌠ exceedeΣ ì
  205. event≤ causσ thσ machinσ t∩ ente≥ it≤ idlσ state.
  206.  
  207. BSDATA
  208.  
  209.       Thσ BL╨ machine'≤ local, upper-leve∞ applicatioε i≤ read∙ t∩ transfe≥ ì
  210. datß witΦ aε activσ remotσ BLP.  Al∞ 'D' packet≤ arσ passeΣ t∩ thσ ì
  211. Datß machine.
  212.  
  213.  
  214. .CP 3
  215.  Datß state≤ - ─ packets
  216.  
  217.       
  218. DDATA
  219.  
  220.       Thσ remotσ BL╨ i≤ read∙ t∩ receivσ datß packets.  Thσ statσ change≤ t∩ ì
  221. DWAI╘ wheε ne≈ outgoinτ sequenceΣ datß packet≤ arσ enqueued.  DDAT┴ ì
  222. statσ i≤ reentereΣ oncσ al∞ outstandinτ packet≤ arσ acknowledged.
  223.  
  224. DWAIT
  225.  
  226.       Thσ BL╨ machinσ ha≤ datß outstandinτ fo≥ thσ remotσ BLP, anΣ i≤ awaitì
  227. inτ ß response.  Iµ ß BTIMER-expireΣ even⌠ occurs, thσ datß packe⌠ i≤ ì
  228. retransmitted.  Iµ ß DAC╦ o≥ DBUS┘ packe⌠ acknowledginτ al∞ outstand
  229. .OJ OFF
  230. inτ packet≤ i≤ received, thσ statσ change≤ t∩ DDATA.
  231. .OJ ON
  232.  
  233.    BL╨ packe⌠ types
  234. ìè
  235.  Supervisor∙ packets
  236.  
  237. C╙ - Cal∞ setup
  238.  
  239.       format:
  240. .OJ OFF
  241.           |LCN|02|[called_address][calling_parameters]|
  242. .OJ ON
  243.  
  244.       ┴ sequenceΣ BL╨ linδ i≤ precedeΣ b∙ thσ cal∞ setu≡ phase.  ┴ devicσ ì
  245. direct≤ ß C╙ packe⌠ toward≤ anothe≥ devicσ capablσ oµ reachinτ thσ ì
  246. [calleΣ address].
  247.  
  248.       Wheε ß devicσ receive≤ ß C╙ packet, iµ thσ LC╬ i≤ no⌠ alread∙ iε usσ ì
  249. thσ devicσ shal∞ binΣ ß loca∞ uppe≥ leve∞ contro∞ structurσ t∩ thσ ì
  250. LCN, configurσ thσ specifieΣ calling_parameters, commanΣ thσ uppe≥ ì
  251. leve∞ t∩ opeε ß linδ t∩ thσ called_addres≤ specified, anΣ a⌠ somσ timσ ì
  252. iε thσ futurσ responΣ witΦ eithe≥ CC├ o≥ CCLRD.  Fo≥ example, ß TNC-2 ì
  253. bind≤ thσ LC╬ t∩ onσ oµ it≤ AX.25 connection-contro∞ blocks, start≤ ì
  254. thσ connectioε attemp⌠ t∩ thσ called_address, get≤ connected, anΣ ì
  255. respond≤ witΦ ß CCC.
  256.  
  257.       Wheε ß devicσ currentl∙ sendinτ C╙ packet≤ oε thσ LC╬ (i.e., iε thσ ì
  258. BSRCSETU╨ state) receive≤ ß C╙ packet, ß collisioε ha≤ occurred, anΣ ì
  259. thσ connectioε i≤ terminated.
  260.  
  261. .CP 3
  262.       C╙ addres≤ formats:
  263.  
  264. [called_address]
  265.      Nul∞ áááterminateΣ ááádestinatioε áááAX.25 ááácallsigε ááanΣ ì
  266. digipeater≤ áááiε áááAX.25/HDL├ áááformat, áái.e. áálef⌠ ááshiftì
  267. ed.
  268. [calling_parms]
  269.      RFU; ááusσ ááBL╨ ááchanne∞ áát∩ áTN├ ácommanΣ áinterfacσ át∩ ì
  270. selec⌠ thesσ iε thσ meantime.
  271.  
  272.  
  273. CC├ - Cal∞ connected
  274.  
  275.       format:
  276.         |LCN|04|
  277.  
  278.       Wheε thσ devicσ receivinτ ß C╙ packe⌠ ha≤ (1) bounΣ thσ LC╬ t∩ it≤ ì
  279. upper-leve∞ handler, (2) commandeΣ thσ upper-leve∞ t∩ opeε ß connecì
  280. tion, anΣ (3) successfull∙ connecteΣ thσ upper-leve∞ handle≥ t∩ thσ ì
  281. networδ called_address, thσ devicσ send≤ ß CC├ anΣ enter≤ thσ BSDAT┴ ì
  282. state.
  283.  
  284.  
  285. .CP 4
  286. CCL╥ - Cal∞ clear
  287.  
  288.       format:
  289.         |LCN|08|[reason_code]|
  290.  
  291.       ┴ devicσ attemptinτ t∩ closσ thσ LC╬ indicate≤ thσ attemp⌠ b∙ sendinτ ì
  292. CCLR.  Thσ reason_codσ (forma⌠ t∩ bσ determined) explain≤ why; ex: 
  293. .OJ OFF
  294. upper-leve∞ busy, retr∙ failure, cal∞ collision, etc.
  295. .OJ ON
  296.  
  297.       Meaninτ oµ "generic" [reason_code]s:
  298. ìè
  299.           0:=  Remotσ requesteΣ (typical)
  300.           1:=  BL╨ couldn'⌠ connec⌠ LC╬ (eithe≥ ou⌠ oµ contro∞ block≤ o≥ ì
  301. faileΣ t∩ finΣ ß freσ channe∞ t∩ connec⌠ witΦ o≥ alread∙ connecteΣ t∩ ì
  302. tha⌠ station)
  303.  
  304.       Meaninτ oµ [reason_code]≤ onl∙ sen⌠ b∙ ß TNC≤ witΦ BLP:
  305.           2:=  CalleΣ AX.25 addres≤ wa≤ busy
  306.           3:=  (No≈ disconnected) AX.25 linδ associateΣ witΦ thi≤ addres≤ ì
  307. retrieΣ out
  308.  
  309. .CP 10
  310. CCLR─ - Cal∞ cleared
  311.  
  312.       format:
  313.         |LCN|09|
  314.  
  315.       ┴ responsσ t∩ ß CCL╥ command, indicate≤ receip⌠ oµ thσ clea≥ commanΣ ì
  316. anΣ successfu∞ unbindinτ oµ thσ LCN.
  317.  
  318. CSTEN╤ - Cal∞ statu≤ enquiry
  319.  
  320.       format:
  321.         |LCN|10|
  322.  
  323.       Cause≤ thσ devicσ t∩ returε ß CSTRE╨ statu≤ repl∙ packet
  324.  
  325. .CP 7
  326. CSTRE╨ - Cal∞ statu≤ reply
  327.  
  328.       format:
  329.         |LCN|11|[status]|
  330.  
  331.       Responsσ t∩ CSTEN╤ enquir∙ packet. Fina∞ forma⌠ oµ [status▌ t∩ bσ ì
  332. determined; preliminary:
  333.  
  334.       status[0▌    = LCN'≤ curren⌠ supervisor∙ statσ #
  335.       status[1▌    = LCN'≤ curren⌠ datß statσ #
  336.       status[2..n▌ = LCN'≤ uppe≥ leve∞ statu≤ 
  337.           ex: TN├ respond≤ status[2▌ = AX.25 state
  338.                             status[3▌ =   appro° # oµ unacknowledgeΣ 
  339.                                         AX.25 packets
  340.  
  341. UDAT┴ - UnnumbereΣ data
  342.  
  343.       format:
  344.         |70|20|[called_address]|[data0...datan]|
  345.  
  346.       Broadcas⌠ datß commanΣ packet.  GenerateΣ b∙ TN├ upoε receip⌠ oµ AX.25 ì
  347. U╔ frame.  TN├ generate≤ U╔ framσ wheε i⌠ receive≤ ß BL╨ UDAT┴ packet.
  348.  
  349.       Recal∞ tha⌠ LC╬ 0x70 i≤ permanentl∙ connected; d∩ no⌠ attemp⌠ t∩ C╙ ì
  350. channe∞ 0x70 (TNC-2)
  351. ìè
  352. DDAT┴ - SequenceΣ datß commanΣ packet
  353.  
  354.       format:
  355.         |LCN|8x|[data0...datan]|
  356.                ° :: sequencσ number, moΣ 16
  357.  
  358. DAC╦  - SequenceΣ datß acknowledgement
  359.  
  360.       format:
  361.         |LCN|9x|
  362.                ° :: sequencσ number, moΣ 16
  363.  
  364.       Acknowledge≤ packet≤ througΦ sequencσ numbe≥ 'x'-1
  365.  
  366.    DBUS┘  - SequenceΣ datß acknowledgement/busy
  367.  
  368.       format:
  369.         |LCN|Ax|
  370.                ° :: sequencσ number, moΣ 16
  371.  
  372.       Acknowledge≤ packet≤ througΦ sequencσ numbe≥ 'x'-1 anΣ inabilit∙ t∩ ì
  373. receivσ sequencσ numbe≥ x.
  374.  
  375. .PA è
  376.  
  377.                          SUPERVISOR┘ PACKE╘ RECEIVE─ EVENTS
  378.  
  379.       │ Cal∞ Setup     │Cal∞ connected     │Cal∞ clear       │Cal∞ cleared      │
  380. ─────────────────────────────────────────────────────────────────────────────────────────────────────────────
  381.       │Star⌠ local,     │             │SenΣ call        │             │
  382. BSIDLE  │                │             │cleared,        │             │
  383.       │BSstate->BSLCSETUP │             │BSstate->BSIDLE    │             │
  384. ─────────────────────────────────────────────────────────────────────────────────────────────────────────────
  385.       │                │             │Sto≡ local,      │             │
  386. BSLCSETUP│               │             │BSstate->BSIDLE    │             │
  387.       │            │             │             │             │
  388. ─────────────────────────────────────────────────────────────────────────────────────────────────────────────
  389.       │Sto≡ local,     │BSstate->BSDATA,   │      "         │             │
  390. BSRCSETUP│BSstate-       │BDstate->BDIDLE    │             │             │
  391.       │(*collision*     │             │             │             │
  392. ─────────────────────────────────────────────────────────────────────────────────────────────────────────────
  393.       │            │             │      "         │             │
  394. BSCLEARWT│            │             │             │BSstate->BSIDLE    │
  395.       │            │             │             │             │
  396. ─────────────────────────────────────────────────────────────────────────────────────────────────────────────
  397.       │            │             │      "         │             │
  398. BSDATA  │            │             │             │             │
  399.       │            │             │             │             │
  400. ──────────────────────────────────────────────────────────────────────────────────────────────────────────────
  401.  
  402. Statσ Changes: Implici⌠ iε eacΦ describeΣ statσ changσ is:
  403.       1. settinτ BTIME╥ t∩ expired, and
  404.       2. thσ zeroinτ oµ thσ Retr∙ count.
  405.  
  406. Cal∞ Statu≤ packet: ┴ call-status-repl∙ (CSTREP) packe⌠ i≤ sen⌠ wheneve≥ a
  407.       call-status-enquir∙ (CSTENQ) packe⌠ i≤ received.
  408. .PA è
  409.                                     LOCA╠ SUPERVISOR┘ EVENTS
  410.  
  411.       │   Local       │Loca∞ sto≡ or     │Succesfull∙ connected│intentionally     │Retry-limit      │  BTIMER        │
  412.       │outgoinτ start    │opeε failure      │t∩ upper, loca∞ layer│blank          │ exceeded        │ expired        │
  413. ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
  414.       │            │             │             │             │             │             │
  415. BSIDLE  │BSstate->BSRCSETUP │             │             │             │             │             │
  416.       │            │             │             │             │             │             │
  417. ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
  418.       │            │Sto≡ local,      │SenΣ CCC,        │             │Sto≡ local,      │             │
  419. BSLCSETUP│            │BSstate->BSCLEARWT  │BSstate->BSDATA,   │             │ BSstate->BSCLEARWT  │             │
  420.       │            │             │BDstate->BDIDLE    │             │             │             │
  421. ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
  422.       │            │     "         │             │             │    "          │SenΣ call        │
  423. BSRCSETUP│            │             │             │             │             │ setu≡ & restart   │
  424.       │            │             │             │             │             │ btimer         │
  425. ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
  426.       │            │     "         │             │             │BSstate->BSIDLE    │SenΣ call        │
  427. BSCLEARWT│            │             │             │             │             │ clea≥ & restart   │
  428.       │            │             │             │             │             │ BTIMER         │
  429. ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
  430.       │            │     "         │             │             │Sto≡ local,      │(seσ Datß table)   │
  431. BSDATA  │            │             │             │             │ BSstate->BSCLEARWT  │
  432.       │            │             │             │             │             │             │
  433. ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
  434.  
  435. .PA è
  436.                            DAT┴ LEVE╠ STAT┼ TABLE
  437.  
  438.       |Ne≈ outgoinτ data  |Al∞ outgoinτ data   |  BTIME╥ expired, or |ReceiveΣ DDAT┴ but  | Received        | Received        |
  439.       |   arσ queued    | werσ acknowledged  |rxΣ unsoliciteΣ CSTREP| we'rσ busy      |   DDATA        | DAC╦ o≥ DBUSY     |
  440. ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
  441.       |            |             |             |SenΣ DBUSY,      | DATAPROC        |  ACKPROC        |
  442. BDIDLE  |BDstate->BDWAIT   |             |             |BDstate->BDBSY     | (respond≤ with    | (signal≤ all-ack'd  |
  443.       |            |             |             |             | DACK)         |events&free≤ txqueue)|
  444. ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
  445.       |            |             |Transmi⌠ queued    |SenΣ DBUSY,      |     "         |     "         |
  446. BDWAIT  |            |BDstate->BDIDLE    | data, restart     |BDstate->BDBSYWT   |             |             |
  447.       |            |             | BTIMER         |             |             |             |
  448. ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
  449.       |            |             |             |             |             |     "         |
  450. BDBSY   |BDstate->BDBSYWT  |             |             |             |             |             |
  451.       |            |             |             |             |             |             |
  452. ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
  453.       |            |             |Transmi⌠ queued    |             |             |     "         |
  454. BDBSYWT |            |BDstate->BDBSY     | data, restart     |             |             |             |
  455.       |            |             | BTIMER         |             |             |             |
  456. ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
  457.  
  458.  
  459.  
  460.       |We'rσ n∩ longer   |  Received       |             |             |             |             |
  461.       | busy         |  CSTREQ        |             |             |             |             |
  462. ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
  463.       |            |             |             |             |             |             |
  464. BDIDLE  |            |SenΣ CSTREP      |             |             |             |             |
  465.       |            |             |             |             |             |             |
  466. ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
  467.       |            |             |             |             |             |             |
  468. BDWAIT  |            |SenΣ CSTREP      |             |             |             |             |
  469.       |            |             |             |             |             |             |
  470. ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
  471.       |SenΣ CSTREP,     |             |             |             |             |             |
  472. BDBSY   |BDstate->BDIDLE   |SenΣ CSTREP      |             |             |             |             |
  473.       |            |             |             |             |             |             |
  474. ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
  475.       |SenΣ CSTREP,     |             |             |             |             |             |
  476. BDBSYWT |BDstate->BDWAIT   |SenΣ CSTREP      |             |             |             |             |
  477.       |            |             |             |             |             |             |
  478. ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
  479.